﻿// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
using namespace std;

bool c(long long k, long long a, long long b)
{
	const long long MIN = -1000000000000000000, MAX = 1000000000000000000;
	bool e = true;
	//判断并说明数据出错原因
	if (k<1 || k>MAX) { cout << "k值超出范围（1 <= k <= 10^18),"; e = false; }
	if (a > b) { cout << "a值应不大于b值,"; e = false; }
	if (a<MIN || a>MAX) { cout << "a值超出范围（-10^18 <= a <= 10^18),"; e = false; }
	if (b<MIN || b>MAX) { cout << "b值超出范围（-10^18 <= b <= 10^18),"; e = false; }

	return e;
}


int main()
{
	cout << "------[a,b]区间内有多少个能整除k的数------\n";
	cout << "请输入多组k,a,b的值\n数字之间以空格分隔，以换行分组，按任意非数字键完成输入\n" ;
	cout << "（其中，1 <= k <= 10^18，-10^18 <= a <= b <= 10^18）\n\n"<<endl;

	long long k, a, b;
	while (cin >> k >> a >> b)
	{
		//Scout << k << a << b << endl;
		if (!c(k, a, b)) { cout << "请重新输入本行数据" << endl; continue; }
		long long d = b - a + 1;
		long long n = (d - d % k) / k;
		cout << '[' << a << ',' << b << "]区间内有" << n << "个数可以整除" << k << endl;
	}

	cout << "-----------------计算结束-------------------";
	return 0;
}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件，或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来，若要再次打开此项目，请转到“文件”>“打开”>“项目”并选择 .sln 文件
